home *** CD-ROM | disk | FTP | other *** search
- property objectSprite, objectRect, buttonState, mouseIsDown, mouseIn, buttonIsOn, onPict, upPict, downPict, offPict, sendsEvent, eventCatcher
-
- on mouseEvent me, xEvent, xLoc
- case xEvent of
- #mouseEnter:
- if mouseIsDown then
- set buttonState to #down
- else
- set buttonState to #up
- end if
- set mouseIn to 1
- #mouseDown:
- if buttonIsOn then
- catchEvent(eventCatcher, sendsEvent)
- end if
- set buttonState to #down
- set mouseIsDown to 1
- #mouseUp:
- if mouseIn then
- set buttonState to #up
- else
- set buttonState to #on
- end if
- set mouseIsDown to 0
- catchEvent(eventCatcher, #mouseUp)
- #mouseGone, #mouseLeave:
- set buttonState to #on
- set mouseIsDown to 0
- set mouseIn to 0
- catchEvent(eventCatcher, #mouseUp)
- end case
- if buttonIsOn then
- swapImage(me)
- end if
- end
-
- on areYouThere me, xLoc
- if inside(xLoc, objectRect) then
- return 1
- end if
- return 0
- end
-
- on turnON me
- if not buttonIsOn then
- set buttonIsOn to 1
- swapImage(me)
- end if
- end
-
- on turnOff me
- if buttonIsOn then
- set buttonIsOn to 0
- set the member of sprite objectSprite to offPict
- end if
- end
-
- on new me, xSprite
- set objectSprite to xSprite
- set objectRect to the rect of sprite objectSprite
- set buttonIsOn to 1
- set mouseIn to 0
- puppetSprite(objectSprite, 1)
- return me
- end
-
- on setPicts me, pictList
- set onPict to getAt(pictList, 1)
- set upPict to getAt(pictList, 2)
- set downPict to getAt(pictList, 3)
- set offPict to getAt(pictList, 4)
- swapImage(me)
- end
-
- on linkUp me, xCatcher, xSymbol
- set eventCatcher to xCatcher
- set sendsEvent to xSymbol
- end
-
- on subscribe me, xCursor
- subscribe(xCursor, me)
- end
-
- on unsubscribe me, xCursor
- unsubscribe(xCursor, me)
- end
-
- on destroy me
- puppetSprite(objectSprite, 0)
- set me to 0
- end
-
- on swapImage me
- if buttonIsOn then
- case buttonState of
- #on:
- set the member of sprite objectSprite to onPict
- #up:
- set the member of sprite objectSprite to upPict
- #down:
- set the member of sprite objectSprite to downPict
- end case
- else
- set the member of sprite objectSprite to offPict
- end if
- updateStage()
- end
-